const { join } = require('path')
const { readFile, writeFile } = require('fs')
const file = join(__dirname, 'books.json')

const express = require('express')
const app = express()
const port = 3000

app.use(require('cors')())

app.use(express.json()) // 接收JSON格式的数据
app.use(express.urlencoded({ extended: true })) // 接收查询字符串格式的数据
// app.use(require('cors' ()))

app.get('/', (req, res) => {
  res.send('Hello 我是你可爱的服务器～')
})

//获取图书接口
app.get('/yoyo/GetBooks', (req, res) => {
    // req = request = 请求「获取请求相关信息，通过req获取；比如获取请求头、请求体查询参数...」
    // res = response = 响应「做出响应通过res做出，比如设置响应状态码，设置响应体」
    readFile(file, 'utf-8', (err,data) => {
        if (err) {
            res.send({ status: 1, message: '获取图书失败'})
        } else {
            res.send({ status: 0, message: '获取图书成功', data: JSON.parse(data)})
        }
    })
})
// 添加图书接口
app.post('/yoyo/AddBooks', (req, res) => {
    // console.log(req.body)
    req.body.id = Date.now()  //给新书添加 id
    readFile(file, 'utf-8', (err,data) => {
        if (err) throw err
        let arr = JSON.parse(data)
        arr.push(req.body)
        writeFile(file, JSON.stringify(arr), err => {
            if (err) throw err
            res.send({ status: 0, message: '获取图书成功'})
        })
    })
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})